/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package Toepen.SpelFacade;

import java.io.Serializable;

/**
 * Deze klasse bevat alle deelnemers en geeft informatie over de status van het
 * spel.
 * @author Bart Piggen
 */
public class SpelObservable implements Serializable {
    FacadeDeelnemer[]     _AndereDeelnemers;
    FacadeDezeDeelnemer   _DezeDeelnemer;
    FacadeDeelnemer       winnaar;
    boolean               klopRonde = false;
    private boolean isSpelAfgelopen;

    /**
     * Constructor voor SpelObservable
     * @param andereDeelnemers andere deelnemers
     * @param dezeDeelnemer de deelnemer die dit spel observed
     * @param winnaar als het spel afgelopen is is er een winnaar
     * @param isSpelAfgelopen bool of het spel afgelopen is
     * @param klopRonde of het een klopronde is
     */
    protected SpelObservable(FacadeDeelnemer[] andereDeelnemers, FacadeDezeDeelnemer dezeDeelnemer, FacadeDeelnemer winnaar, boolean isSpelAfgelopen, boolean klopRonde)
    {
        _AndereDeelnemers = andereDeelnemers;
        _DezeDeelnemer = dezeDeelnemer;
        this.winnaar = winnaar;
        this.isSpelAfgelopen = isSpelAfgelopen;
        this.klopRonde = klopRonde;
    }

    /**
     * @return andere deelnemers
     */
    public FacadeDeelnemer[] getAndereDeelnemers()
    {
        return(_AndereDeelnemers);
    }

    /**
     * @return deze deelnemer
     */
    public FacadeDezeDeelnemer getDezeDeelnemer()
    {
        return(_DezeDeelnemer);
    }

    /**
     * @return optelling van het aantal deelnemers
     */
    public int GetAantalDeelnemers()
    {
        return(_AndereDeelnemers.length+1);
    }

    /**
     * @return winaar deelnemer
     */
    public FacadeDeelnemer getWinnaar() {
        return winnaar;
    }

    /**
     * @return of het spel afgelopen is
     */
    public boolean isSpelAfgelopen() {
        return isSpelAfgelopen;
    }

    /**
     * @return of het een klopronde is
     */
    public boolean isKlopRonde() {
        return klopRonde;
    }
}
